
/**
* <copyright>
*
* Copyright (c) 2009 Jin Mingjian and others.
* All rights reserved.   This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*   Jin Mingjian - Initial API and implementation
*  
* </copyright>
* 
**/

package com.google.code.exquery.parser;

public class XQueryLexerprs implements lpg.runtime.ParseTable, XQueryLexersym {
    public final static int ERROR_SYMBOL = 0;
    public final int getErrorSymbol() { return ERROR_SYMBOL; }

    public final static int SCOPE_UBOUND = 0;
    public final int getScopeUbound() { return SCOPE_UBOUND; }

    public final static int SCOPE_SIZE = 0;
    public final int getScopeSize() { return SCOPE_SIZE; }

    public final static int MAX_NAME_LENGTH = 0;
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int NUM_STATES = 76;
    public final int getNumStates() { return NUM_STATES; }

    public final static int NT_OFFSET = 102;
    public final int getNtOffset() { return NT_OFFSET; }

    public final static int LA_STATE_OFFSET = 1920;
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }

    public final static int MAX_LA = 1;
    public final int getMaxLa() { return MAX_LA; }

    public final static int NUM_RULES = 514;
    public final int getNumRules() { return NUM_RULES; }

    public final static int NUM_NONTERMINALS = 70;
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }

    public final static int NUM_SYMBOLS = 172;
    public final int getNumSymbols() { return NUM_SYMBOLS; }

    public final static int SEGMENT_SIZE = 8192;
    public final int getSegmentSize() { return SEGMENT_SIZE; }

    public final static int START_STATE = 515;
    public final int getStartState() { return START_STATE; }

    public final static int IDENTIFIER_SYMBOL = 0;
    public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; }

    public final static int EOFT_SYMBOL = 101;
    public final int getEoftSymbol() { return EOFT_SYMBOL; }

    public final static int EOLT_SYMBOL = 103;
    public final int getEoltSymbol() { return EOLT_SYMBOL; }

    public final static int ACCEPT_ACTION = 1405;
    public final int getAcceptAction() { return ACCEPT_ACTION; }

    public final static int ERROR_ACTION = 1406;
    public final int getErrorAction() { return ERROR_ACTION; }

    public final static boolean BACKTRACK = false;
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int getStartSymbol() { return lhs(0); }
    public final boolean isValidForParser() { return XQueryLexersym.isValidForParser; }


    public interface IsNullable {
        public final static byte isNullable[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,1,0,0,0,0,0,0,
            0,0,0,0,0,1,1,0,0,0,
            0,0
        };
    };
    public final static byte isNullable[] = IsNullable.isNullable;
    public final boolean isNullable(int index) { return isNullable[index] != 0; }

    public interface ProsthesesIndex {
        public final static byte prosthesesIndex[] = {0,
            17,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,16,6,
            55,70,9,10,52,66,56,18,19,48,
            49,53,57,60,61,62,63,68,2,3,
            4,5,7,8,11,12,13,14,15,58,
            59,64,65,67,69,1,47,50,51,54
        };
    };
    public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex;
    public final int prosthesesIndex(int index) { return prosthesesIndex[index]; }

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static byte baseCheck[] = {0,
            1,1,5,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,2,2,2,
            1,2,2,1,1,1,1,2,1,2,
            1,2,2,2,2,1,1,2,2,2,
            2,2,2,1,2,1,1,1,1,1,
            1,2,2,2,3,2,2,2,3,3,
            1,1,4,4,5,6,6,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,2,1,1,1,2,1,
            2,1,2,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,4,5,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,2,1,2,3,3,2,
            2,0,3,3,3,2,1,1,1,1,
            1,8,0,3,2,1,1,1,1,1,
            13,0,3,3,4,4,4,4,2,1,
            1,1,1,1
        };
    };
    public final static byte baseCheck[] = BaseCheck.baseCheck;
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static byte rhs[] = baseCheck;
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            49,49,49,49,49,49,49,49,49,49,
            49,49,49,49,49,49,49,49,49,49,
            49,49,49,49,49,49,49,49,49,49,
            49,49,49,49,49,49,49,49,49,49,
            49,49,49,49,49,49,49,49,49,49,
            49,49,49,49,51,51,29,29,29,29,
            29,30,30,53,53,53,54,54,38,38,
            38,39,39,33,33,33,33,33,1,1,
            1,1,1,1,1,1,1,1,2,2,
            3,3,4,4,5,5,6,6,7,7,
            8,8,9,9,10,10,11,11,12,12,
            13,13,14,14,15,15,16,16,17,17,
            18,18,19,19,20,20,21,21,22,22,
            23,23,24,24,25,25,26,26,27,27,
            28,28,28,28,28,28,28,28,28,28,
            28,28,28,28,28,28,28,28,28,28,
            28,28,28,28,28,28,67,67,67,67,
            67,67,67,67,67,67,67,67,67,67,
            67,67,67,67,67,67,67,67,67,67,
            67,67,67,67,67,67,67,67,40,40,
            40,40,40,40,40,40,40,40,40,40,
            40,40,40,40,40,40,40,40,40,40,
            40,40,40,40,40,40,40,40,41,41,
            41,41,41,41,41,41,41,41,41,41,
            41,41,41,41,41,41,41,41,41,41,
            41,41,41,41,41,41,41,41,68,68,
            68,68,68,68,68,68,68,68,68,68,
            68,68,68,68,68,68,68,68,68,68,
            68,68,68,68,68,69,69,69,69,69,
            69,69,69,69,69,69,69,69,69,69,
            69,69,69,69,69,69,69,69,69,69,
            69,69,35,35,35,35,35,35,35,35,
            35,35,35,35,35,35,35,35,35,35,
            35,35,35,35,35,35,35,35,35,35,
            35,42,42,42,42,42,42,42,42,42,
            42,42,42,42,42,42,42,42,42,42,
            42,42,42,42,42,42,42,42,42,42,
            42,42,70,70,70,70,70,70,70,70,
            70,70,70,70,70,70,70,70,70,70,
            70,70,70,70,70,70,70,70,70,70,
            70,70,31,31,31,31,31,31,31,31,
            31,31,31,31,31,31,31,31,31,31,
            31,31,31,31,31,31,31,31,31,31,
            31,31,37,37,37,43,43,43,60,60,
            50,50,61,61,45,45,45,45,45,45,
            45,45,45,45,45,45,44,44,34,34,
            46,46,46,46,46,46,46,47,47,47,
            47,47,47,47,62,62,63,63,55,55,
            56,57,52,52,52,52,52,36,36,36,
            36,36,58,64,64,64,48,48,48,48,
            48,59,65,65,65,65,65,65,65,65,
            32,32,32,32,32,1413,61,140,141,142,
            143,144,145,146,147,148,149,150,151,152,
            153,154,155,156,157,158,159,160,161,162,
            163,164,165,433,54,631,1776,62,7,8,
            1764,62,797,1110,1818,62,1829,62,1840,62,
            1202,1250,1681,456,567,1,671,1406,636,6,
            9,10,11,12,13,1,468,140,141,142,
            143,144,145,146,147,148,149,150,151,152,
            153,154,155,156,157,158,159,160,161,162,
            163,164,165,467,470,858,442,457,473,472,
            1851,62,1787,1692,1865,1866,469,1864,1542,1670,
            1868,1802,476,633,1006,1862,1104,1863,1677,1508,
            1882,1708,62,1654,456,1509,1867,1734,702,102,
            461,140,141,142,143,144,145,146,147,148,
            149,150,151,152,153,154,155,156,157,158,
            159,160,161,162,163,164,165,460,463,67,
            1366,1800,466,465,66,1366,1719,443,457,462,
            1595,1870,1884,1885,1886,474,1888,1889,1869,1901,
            1871,1909,1911,1912,1915,1890,1916,1883,1913,1406,
            55,750,203,468,140,141,142,143,144,145,
            146,147,148,149,150,151,152,153,154,155,
            156,157,158,159,160,161,162,163,164,165,
            467,470,1406,1406,1406,473,472,1406,1406,1406,
            1406,1406,1406,469,1406,1406,1406,1406,1406,477,
            304,461,140,141,142,143,144,145,146,147,
            148,149,150,151,152,153,154,155,156,157,
            158,159,160,161,162,163,164,165,460,463,
            1406,1406,1406,466,465,1406,1406,1406,1406,1406,
            462,1406,1406,1406,1406,1406,475,1514,437,140,
            141,142,143,144,145,146,147,148,149,150,
            151,152,153,154,155,156,157,158,159,160,
            161,162,163,164,165,433,1736,61,1406,1406,
            1406,1406,1406,1406,676,1406,1406,1406,1406,1406,
            438,1406,1406,1406,1406,1406,1406,1406,1406,1406,
            1406,1406,1406,1406,1406,1406,546,1335,405,488,
            140,141,142,143,144,145,146,147,148,149,
            150,151,152,153,154,155,156,157,158,159,
            160,161,162,163,164,165,487,489,1406,1406,
            1406,1406,1406,491,486,1313,488,140,141,142,
            143,144,145,146,147,148,149,150,151,152,
            153,154,155,156,157,158,159,160,161,162,
            163,164,165,487,489,1406,1406,1406,1406,1406,
            491,484,1313,488,140,141,142,143,144,145,
            146,147,148,149,150,151,152,153,154,155,
            156,157,158,159,160,161,162,163,164,165,
            487,489,1406,1406,1406,1406,1406,491,483,1112,
            488,140,141,142,143,144,145,146,147,148,
            149,150,151,152,153,154,155,156,157,158,
            159,160,161,162,163,164,165,487,489,1406,
            1406,1406,1406,1406,491,485,506,497,140,141,
            142,143,144,145,146,147,148,149,150,151,
            152,153,154,155,156,157,158,159,160,161,
            162,163,164,165,496,498,1406,1406,1406,1406,
            1406,1406,1406,1406,1406,1406,1406,1406,500,1406,
            1406,1406,1406,1406,495,607,497,140,141,142,
            143,144,145,146,147,148,149,150,151,152,
            153,154,155,156,157,158,159,160,161,162,
            163,164,165,496,498,1406,1406,1406,1406,1406,
            1406,1406,1406,1406,1406,1406,1406,500,1406,1406,
            1406,1406,1406,494,708,511,140,141,142,143,
            144,145,146,147,148,149,150,151,152,153,
            154,155,156,157,158,159,160,161,162,163,
            164,165,510,512,1406,514,509,809,511,140,
            141,142,143,144,145,146,147,148,149,150,
            151,152,153,154,155,156,157,158,159,160,
            161,162,163,164,165,510,512,1406,514,504,
            910,511,140,141,142,143,144,145,146,147,
            148,149,150,151,152,153,154,155,156,157,
            158,159,160,161,162,163,164,165,510,512,
            1406,514,503,1212,511,140,141,142,143,144,
            145,146,147,148,149,150,151,152,153,154,
            155,156,157,158,159,160,161,162,163,164,
            165,510,512,1406,514,508,1212,511,140,141,
            142,143,144,145,146,147,148,149,150,151,
            152,153,154,155,156,157,158,159,160,161,
            162,163,164,165,510,512,1406,514,506,1212,
            511,140,141,142,143,144,145,146,147,148,
            149,150,151,152,153,154,155,156,157,158,
            159,160,161,162,163,164,165,510,512,1406,
            514,507,1011,511,140,141,142,143,144,145,
            146,147,148,149,150,151,152,153,154,155,
            156,157,158,159,160,161,162,163,164,165,
            510,512,1406,514,505,1584,437,140,141,142,
            143,144,145,146,147,148,149,150,151,152,
            153,154,155,156,157,158,159,160,161,162,
            163,164,165,433,1752,61,1723,61,1789,61,
            1807,61,676,1807,61,1406,1406,1406,439,1406,
            1406,1406,1406,1406,1406,1406,1406,1406,1406,1406,
            1406,1406,1406,1406,550,1406,554,1406,556,1406,
            558,1406,1406,610,1406,1406
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,75,76,77,78,79,
            80,81,82,83,84,85,86,87,88,89,
            90,91,92,93,94,95,96,97,98,99,
            100,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,76,77,78,
            79,80,81,82,83,84,85,86,87,88,
            89,90,91,92,93,94,95,96,97,98,
            99,100,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,71,72,73,74,75,76,77,
            78,79,80,81,82,83,84,85,86,87,
            88,89,90,91,92,93,94,95,96,97,
            98,99,100,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,28,29,30,31,32,33,34,35,36,
            37,38,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,70,71,72,73,74,75,76,
            77,78,79,80,81,82,83,84,85,86,
            87,88,89,90,91,92,93,94,95,96,
            97,98,99,100,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,54,55,
            56,57,58,59,60,61,62,63,64,65,
            66,67,68,69,70,71,72,73,74,75,
            76,77,78,79,80,81,82,83,84,85,
            86,87,88,89,90,91,92,93,94,95,
            96,97,98,99,100,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,34,
            35,36,37,38,39,40,41,42,43,44,
            45,46,47,48,49,50,51,52,53,54,
            55,56,57,58,59,60,61,62,63,64,
            65,66,67,68,69,70,71,72,73,74,
            75,76,77,78,79,80,81,82,83,84,
            85,86,87,88,89,90,91,92,93,94,
            95,96,97,98,99,100,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            54,55,56,57,58,59,60,61,62,63,
            64,65,66,67,68,69,70,71,72,73,
            74,75,76,77,78,79,80,81,82,83,
            84,85,86,87,88,89,90,91,92,93,
            94,95,96,97,98,99,100,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,47,48,49,50,51,52,
            53,54,55,56,57,58,59,60,61,62,
            63,64,65,66,67,68,69,70,71,72,
            73,74,75,76,77,78,79,80,81,82,
            83,84,85,86,87,88,89,90,91,92,
            93,94,95,96,97,98,99,100,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,54,55,56,57,58,59,60,61,
            62,63,64,65,66,67,68,69,70,71,
            72,73,74,75,76,77,78,79,80,81,
            82,83,84,85,86,87,88,89,90,91,
            92,93,94,95,96,97,98,99,100,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,34,35,36,37,38,39,40,
            41,42,43,44,45,46,47,48,49,50,
            51,52,53,54,55,56,57,58,59,60,
            61,62,63,64,65,66,67,68,69,70,
            71,72,73,74,75,76,77,78,79,80,
            81,82,83,84,85,86,87,88,89,90,
            91,92,93,94,95,96,97,98,99,100,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,54,55,56,57,58,59,
            60,61,62,63,64,65,66,67,68,69,
            70,71,72,73,74,75,76,77,78,79,
            80,81,82,83,84,85,86,87,88,89,
            90,91,92,93,94,95,96,97,98,0,
            100,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,76,77,78,
            79,80,81,82,83,84,85,86,87,88,
            89,0,91,92,93,94,95,96,97,98,
            99,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,34,35,36,37,0,
            39,40,41,42,43,44,45,46,47,48,
            49,50,51,52,53,54,55,56,57,58,
            59,60,61,62,63,64,65,66,67,68,
            69,70,71,72,73,74,75,76,77,78,
            79,80,81,82,83,84,85,86,87,88,
            89,90,91,92,93,94,95,96,97,98,
            0,100,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,71,72,73,74,75,76,77,
            78,79,80,81,82,83,84,85,86,87,
            88,89,0,91,92,0,94,95,96,97,
            98,99,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,54,55,56,57,
            58,59,60,61,62,63,64,65,66,67,
            68,69,70,71,72,73,74,75,76,77,
            78,79,80,81,82,83,84,85,86,87,
            88,89,90,91,92,93,101,0,0,0,
            0,99,100,0,1,2,3,4,5,6,
            7,8,9,10,16,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,0,35,30,31,32,33,34,35,36,
            37,0,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,0,1,2,3,4,5,6,
            7,8,9,10,0,12,13,14,15,16,
            17,18,19,20,21,22,23,24,25,26,
            27,17,0,30,31,32,33,34,35,36,
            37,80,39,40,41,42,43,44,45,46,
            47,48,49,50,51,52,53,54,55,56,
            57,58,59,60,61,62,63,64,65,66,
            67,68,69,0,1,2,3,4,5,6,
            7,8,9,10,11,12,13,14,15,0,
            17,18,19,20,21,22,0,0,25,26,
            0,1,2,3,4,5,6,7,8,9,
            10,0,12,13,14,15,0,17,18,19,
            20,21,22,0,28,25,26,0,1,2,
            3,4,5,6,7,8,9,10,0,12,
            29,14,0,1,2,3,4,5,6,7,
            8,9,10,0,27,0,1,2,3,4,
            5,6,7,8,9,10,28,71,79,16,
            28,0,1,2,3,4,5,6,7,8,
            9,10,27,0,1,2,3,4,5,6,
            7,8,9,10,11,0,1,2,3,4,
            5,6,7,8,9,10,0,36,0,1,
            2,3,4,5,6,7,8,9,10,0,
            0,0,0,0,0,83,0,1,2,3,
            4,5,6,7,8,9,10,0,1,2,
            3,4,5,6,7,8,9,10,0,1,
            2,3,4,5,6,7,8,9,10,0,
            1,2,3,4,5,6,7,8,9,10,
            0,1,2,3,4,5,6,7,8,9,
            10,0,0,0,0,0,0,0,0,0,
            0,70,73,74,75,76,77,15,12,93,
            14,0,0,0,0,0,18,0,0,0,
            29,90,30,31,29,33,29,28,11,11,
            0,38,38,38,34,24,23,23,0,24,
            0,0,0,32,0,0,16,0,0,11,
            38,0,11,13,0,11,37,0,13,0,
            0,0,70,72,0,72,0,0,0,78,
            0,0,81,82,0,0,0,0,0,0,
            0,0,0,0,0,0,0,90,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,71,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            18,1484,1485,1486,1487,1488,1489,1490,1491,1492,
            1493,1646,1502,1495,1503,1494,1532,1499,1501,1496,
            1498,1500,1504,1522,1524,1497,1505,1642,1635,1658,
            1506,1516,1518,1526,1530,1534,1540,1533,1657,1508,
            1510,1512,1514,1520,1528,1536,1538,1542,1544,1661,
            1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,
            1527,1529,1531,1535,1537,1539,1541,1543,1545,1877,
            1659,1652,1662,1463,1464,1465,1466,1462,1638,1650,
            1651,1654,1656,1634,1647,1887,1649,1639,1663,627,
            1645,1655,1660,1637,1644,1640,1641,1643,1648,1653,
            1636,17,1484,1485,1486,1487,1488,1489,1490,1491,
            1492,1493,1616,1502,1495,1503,1494,1532,1499,1501,
            1496,1498,1500,1504,1522,1524,1497,1505,1612,1605,
            1628,1506,1516,1518,1526,1530,1534,1540,1533,1627,
            1508,1510,1512,1514,1520,1528,1536,1538,1542,1544,
            1631,1507,1509,1511,1513,1515,1517,1519,1521,1523,
            1525,1527,1529,1531,1535,1537,1539,1541,1543,1545,
            1870,1629,1622,1632,1463,1464,1465,1466,1462,1608,
            1620,1621,1624,1626,1604,1886,1617,1619,1609,1633,
            627,1615,1625,1630,1607,1614,1610,1611,1613,1618,
            1623,1606,1406,1484,1485,1486,1487,1488,1489,1490,
            1491,1492,1493,1646,1502,1495,1503,1494,1532,1499,
            1501,1496,1498,1500,1504,1522,1524,1497,1505,1642,
            1635,1658,1506,1516,1518,1526,1530,1534,1540,1533,
            1657,1508,1510,1512,1514,1520,1528,1536,1538,1542,
            1544,1661,1507,1509,1511,1513,1515,1517,1519,1521,
            1523,1525,1527,1529,1531,1535,1537,1539,1541,1543,
            1545,1877,1659,1652,1662,1463,1464,1465,1466,1462,
            1638,1650,1651,1654,1656,1634,1647,1885,1649,1639,
            1663,627,1645,1655,1660,1637,1644,1640,1641,1643,
            1648,1653,1636,1406,1484,1485,1486,1487,1488,1489,
            1490,1491,1492,1493,1616,1502,1495,1503,1494,1532,
            1499,1501,1496,1498,1500,1504,1522,1524,1497,1505,
            1612,1605,1628,1506,1516,1518,1526,1530,1534,1540,
            1533,1627,1508,1510,1512,1514,1520,1528,1536,1538,
            1542,1544,1631,1507,1509,1511,1513,1515,1517,1519,
            1521,1523,1525,1527,1529,1531,1535,1537,1539,1541,
            1543,1545,1870,1629,1622,1632,1463,1464,1465,1466,
            1462,1608,1620,1621,1624,1626,1604,1884,1617,1619,
            1609,1633,627,1615,1625,1630,1607,1614,1610,1611,
            1613,1618,1623,1606,1406,1484,1485,1486,1487,1488,
            1489,1490,1491,1492,1493,1729,1502,1495,1503,1494,
            1532,1499,1501,1496,1498,1500,1504,1522,1524,1497,
            1505,1725,1719,1741,1506,1516,1518,1526,1530,1534,
            1540,1533,1740,1508,1510,1512,1514,1520,1528,1536,
            1538,1542,1544,1744,1507,1509,1511,1513,1515,1517,
            1519,1521,1523,1525,1527,1529,1531,1535,1537,1539,
            1541,1543,1545,1896,1742,1735,1745,1463,1464,1465,
            1466,1462,1721,1733,1734,1737,1739,1718,1720,1730,
            1732,1722,1746,1727,969,1738,1743,895,1726,1723,
            1724,1728,1731,1736,932,1406,1484,1485,1486,1487,
            1488,1489,1490,1491,1492,1493,1760,1502,1495,1503,
            1494,1532,1499,1501,1496,1498,1500,1504,1522,1524,
            1497,1505,1755,1055,1772,1506,1516,1518,1526,1530,
            1534,1540,1533,1771,1508,1510,1512,1514,1520,1528,
            1536,1538,1542,1544,1775,1507,1509,1511,1513,1515,
            1517,1519,1521,1523,1525,1527,1529,1531,1535,1537,
            1539,1541,1543,1545,1905,1773,1766,1776,1463,1464,
            1465,1466,1462,1751,1764,1765,1768,1770,1747,1750,
            1761,1763,1752,1777,1757,1759,1769,1774,1749,1756,
            1753,1754,1758,1762,1767,1748,1406,1484,1485,1486,
            1487,1488,1489,1490,1491,1492,1493,1760,1502,1495,
            1503,1494,1532,1499,1501,1496,1498,1500,1504,1522,
            1524,1497,1505,1755,697,1772,1506,1516,1518,1526,
            1530,1534,1540,1533,1771,1508,1510,1512,1514,1520,
            1528,1536,1538,1542,1544,1775,1507,1509,1511,1513,
            1515,1517,1519,1521,1523,1525,1527,1529,1531,1535,
            1537,1539,1541,1543,1545,1905,1773,1766,1776,1463,
            1464,1465,1466,1462,1751,1764,1765,1768,1770,1747,
            1750,1761,1763,1752,1777,1757,1759,1769,1774,1749,
            1756,1753,1754,1758,1762,1767,1748,1406,1484,1485,
            1486,1487,1488,1489,1490,1491,1492,1493,1822,1502,
            1495,1503,1494,1532,1499,1501,1496,1498,1500,1504,
            1522,1524,1497,1505,1817,1809,1832,1506,1516,1518,
            1526,1530,1534,1540,1533,1137,1508,1510,1512,1514,
            1520,1528,1536,1538,1542,1544,1835,1507,1509,1511,
            1513,1515,1517,1519,1521,1523,1525,1527,1529,1531,
            1535,1537,1539,1541,1543,1545,1919,1833,1828,1836,
            1463,1464,1465,1466,1462,1813,1826,1827,1829,1831,
            1808,1812,1823,1825,1814,1837,1819,1821,1830,1834,
            1811,1818,1815,1816,1820,1824,1170,1810,1406,1484,
            1485,1486,1487,1488,1489,1490,1491,1492,1493,1822,
            1502,1495,1503,1494,1532,1499,1501,1496,1498,1500,
            1504,1522,1524,1497,1505,1817,1809,1832,1506,1516,
            1518,1526,1530,1534,1540,1533,1236,1508,1510,1512,
            1514,1520,1528,1536,1538,1542,1544,1835,1507,1509,
            1511,1513,1515,1517,1519,1521,1523,1525,1527,1529,
            1531,1535,1537,1539,1541,1543,1545,1919,1833,1828,
            1836,1463,1464,1465,1466,1462,1813,1826,1827,1829,
            1831,1808,1812,1823,1825,1814,1837,1819,1821,1830,
            1834,1811,1818,1815,1816,1820,1824,1203,1810,1406,
            1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,
            1822,1502,1495,1503,1494,1532,1499,1501,1496,1498,
            1500,1504,1522,1524,1497,1505,1817,1809,1832,1506,
            1516,1518,1526,1530,1534,1540,1533,1269,1508,1510,
            1512,1514,1520,1528,1536,1538,1542,1544,1835,1507,
            1509,1511,1513,1515,1517,1519,1521,1523,1525,1527,
            1529,1531,1535,1537,1539,1541,1543,1545,1919,1833,
            1828,1836,1463,1464,1465,1466,1462,1813,1826,1827,
            1829,1831,1808,1812,1823,1825,1814,1837,1819,1821,
            1830,1834,1811,1818,1815,1816,1820,1824,1302,1810,
            1406,1484,1485,1486,1487,1488,1489,1490,1491,1492,
            1493,1822,1502,1495,1503,1494,1532,1499,1501,1496,
            1498,1500,1504,1522,1524,1497,1505,1817,1809,1832,
            1506,1516,1518,1526,1530,1534,1540,1533,1907,1508,
            1510,1512,1514,1520,1528,1536,1538,1542,1544,1835,
            1507,1509,1511,1513,1515,1517,1519,1521,1523,1525,
            1527,1529,1531,1535,1537,1539,1541,1543,1545,1919,
            1833,1828,1836,1463,1464,1465,1466,1462,1813,1826,
            1827,1829,1831,1808,1812,1823,1825,1814,1837,1819,
            1821,1830,1834,1811,1818,1815,1816,1820,1824,482,
            1810,1406,1484,1485,1486,1487,1488,1489,1490,1491,
            1492,1493,1729,1502,1495,1503,1494,1532,1499,1501,
            1496,1498,1500,1504,1522,1524,1497,1505,1725,1719,
            1741,1506,1516,1518,1526,1530,1534,1540,1533,1740,
            1508,1510,1512,1514,1520,1528,1536,1538,1542,1544,
            1744,1507,1509,1511,1513,1515,1517,1519,1521,1523,
            1525,1527,1529,1531,1535,1537,1539,1541,1543,1545,
            1896,1742,1735,1745,1463,1464,1465,1466,1462,1721,
            1733,1734,1737,1739,1718,1720,1730,1732,1722,1746,
            1727,493,1738,1743,1409,1726,1723,1724,1728,1731,
            1736,1406,1484,1485,1486,1487,1488,1489,1490,1491,
            1492,1493,1822,1502,1495,1503,1494,1532,1499,1501,
            1496,1498,1500,1504,1522,1524,1497,1505,1817,1809,
            1832,1506,1516,1518,1526,1530,1534,1540,1533,502,
            1508,1510,1512,1514,1520,1528,1536,1538,1542,1544,
            1835,1507,1509,1511,1513,1515,1517,1519,1521,1523,
            1525,1527,1529,1531,1535,1537,1539,1541,1543,1545,
            1919,1833,1828,1836,1463,1464,1465,1466,1462,1813,
            1826,1827,1829,1831,1808,1812,1823,1825,1814,1837,
            1819,1821,1830,1834,1811,1818,1815,1816,1820,1824,
            1406,1810,1406,1484,1485,1486,1487,1488,1489,1490,
            1491,1492,1493,1729,1502,1495,1503,1494,1532,1499,
            1501,1496,1498,1500,1504,1522,1524,1497,1505,1725,
            1719,1741,1506,1516,1518,1526,1530,1534,1540,1533,
            1740,1508,1510,1512,1514,1520,1528,1536,1538,1542,
            1544,1744,1507,1509,1511,1513,1515,1517,1519,1521,
            1523,1525,1527,1529,1531,1535,1537,1539,1541,1543,
            1545,1896,1742,1735,1745,1463,1464,1465,1466,1462,
            1721,1733,1734,1737,1739,1718,1720,1730,1732,1722,
            1746,1727,1406,1738,1743,1406,1726,1723,1724,1728,
            1731,1736,1406,1484,1485,1486,1487,1488,1489,1490,
            1491,1492,1493,1421,1502,1495,1503,1494,1532,1499,
            1501,1496,1498,1500,1504,1522,1524,1497,1505,826,
            1426,1443,1506,1516,1518,1526,1530,1534,1540,1533,
            615,1508,1510,1512,1514,1520,1528,1536,1538,1542,
            1544,1838,1507,1509,1511,1513,1515,1517,1519,1521,
            1523,1525,1527,1529,1531,1535,1537,1539,1541,1543,
            1545,1840,612,1431,617,1463,1464,1465,1466,1462,
            613,619,618,614,625,1425,639,575,1442,1452,
            1437,627,620,1420,1441,1428,1405,1406,1406,1406,
            1406,1432,621,440,1484,1485,1486,1487,1488,1489,
            1490,1491,1492,1493,686,1502,1495,1503,1494,1532,
            1499,1501,1496,1498,1500,1504,1522,1524,1497,1505,
            1842,24,682,1506,1516,1518,1526,1530,1534,1540,
            1533,1406,1508,1510,1512,1514,1520,1528,1536,1538,
            1542,1544,1838,1507,1509,1511,1513,1515,1517,1519,
            1521,1523,1525,1527,1529,1531,1535,1537,1539,1541,
            1543,1545,1840,441,1484,1485,1486,1487,1488,1489,
            1490,1491,1492,1493,1406,1502,1495,1503,1494,1532,
            1499,1501,1496,1498,1500,1504,1522,1524,1497,1505,
            1842,688,1406,1506,1516,1518,1526,1530,1534,1540,
            1533,1439,1508,1510,1512,1514,1520,1528,1536,1538,
            1542,1544,1838,1507,1509,1511,1513,1515,1517,1519,
            1521,1523,1525,1527,1529,1531,1535,1537,1539,1541,
            1543,1545,1840,1406,1484,1485,1486,1487,1488,1489,
            1490,1491,1492,1493,1865,1854,1856,1860,1850,23,
            1858,1859,1851,1852,1853,1855,1406,1406,1857,1861,
            1406,1484,1485,1486,1487,1488,1489,1490,1491,1492,
            1493,1406,1854,1856,1860,1850,1406,1858,1859,1851,
            1852,1853,1855,1406,681,1857,1861,4,1484,1485,
            1486,1487,1488,1489,1490,1491,1492,1493,1406,1477,
            1444,1478,1406,1484,1485,1486,1487,1488,1489,1490,
            1491,1492,1493,1406,1368,47,1484,1485,1486,1487,
            1488,1489,1490,1491,1492,1493,1841,680,1438,687,
            1373,1406,1484,1485,1486,1487,1488,1489,1490,1491,
            1492,1493,1454,1406,1484,1485,1486,1487,1488,1489,
            1490,1491,1492,1493,1864,63,1484,1485,1486,1487,
            1488,1489,1490,1491,1492,1493,1406,562,64,1484,
            1485,1486,1487,1488,1489,1490,1491,1492,1493,2,
            1406,21,1406,1406,1406,1370,1406,1484,1485,1486,
            1487,1488,1489,1490,1491,1492,1493,68,1484,1485,
            1486,1487,1488,1489,1490,1491,1492,1493,65,1484,
            1485,1486,1487,1488,1489,1490,1491,1492,1493,70,
            1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,
            69,1484,1485,1486,1487,1488,1489,1490,1491,1492,
            1493,39,1406,27,34,41,5,16,1406,1406,
            1406,1449,1463,1464,1465,1466,1462,630,1477,1450,
            1478,1406,1406,1406,1406,1406,692,1406,1406,1406,
            1446,553,635,637,1448,629,1455,560,1480,1479,
            1406,1458,1457,1436,694,683,689,690,1406,691,
            1406,1406,1406,684,1406,1406,693,1406,1406,1481,
            1898,1406,1482,695,1406,1483,696,1406,698,1406,
            1406,1406,1364,1459,1406,1434,1406,1406,1406,628,
            1406,1406,1456,1435,1406,1406,1406,1406,1406,1406,
            1406,1406,1406,1406,1406,1406,1406,1451,1406,1406,
            1406,1406,1406,1406,1406,1406,1406,1406,1406,1406,
            1406,1406,1406,1406,1406,1406,1406,1406,1406,1406,
            1406,1406,1406,561
        };
    };
    public final static char termAction[] = TermAction.termAction;
    public final int termAction(int index) { return termAction[index]; }
    public final int asb(int index) { return 0; }
    public final int asr(int index) { return 0; }
    public final int nasb(int index) { return 0; }
    public final int nasr(int index) { return 0; }
    public final int terminalIndex(int index) { return 0; }
    public final int nonterminalIndex(int index) { return 0; }
    public final int scopePrefix(int index) { return 0;}
    public final int scopeSuffix(int index) { return 0;}
    public final int scopeLhs(int index) { return 0;}
    public final int scopeLa(int index) { return 0;}
    public final int scopeStateSet(int index) { return 0;}
    public final int scopeRhs(int index) { return 0;}
    public final int scopeState(int index) { return 0;}
    public final int inSymb(int index) { return 0;}
    public final String name(int index) { return null; }
    public final int originalState(int state) { return 0; }
    public final int asi(int state) { return 0; }
    public final int nasi(int state) { return 0; }
    public final int inSymbol(int state) { return 0; }

    /**
     * assert(! goto_default);
     */
    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    /**
     * assert(! shift_default);
     */
    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
